package com.useoften;

import java.util.HashMap;
import java.util.Map;

public class TestInteger {
    public static void main(String[] args) {
        Integer j = Integer.valueOf(50);//将数字10转成了一个对象

        int a = j.intValue();//把包装类对象转成基本数据类型
        System.out.println(a);

        double b = j.doubleValue();

        //把字符串转换成数字
        Integer m = Integer.valueOf("456");
//        Integer n = Integer.valueOf("456adf");//NumberFormatException

        System.out.println(Integer.MIN_VALUE);//-2147483648
        System.out.println(Integer.MAX_VALUE);//2147483647

        //测试自动装箱和拆箱
        Integer x = 100; //编译器：Integer x = Integer.valueOf(100)

        int y = x;       //编译器：int y = x.valueOf();

        Integer z = null;
//        int z2 = z;      //编译器：int z2 = z.valueOf();抛出空指针异常NullPointerException


        //测试缓存问题
        //自动装箱时，[-128,127]之间的数有缓存！
        Integer x1 = 100;
        Integer x11 = Integer.valueOf(100);
        Integer x2 = 100;
        Integer x3 = 1000;
        Integer x4 = 1000;
        System.out.println(x1==x2); //true，100在[-128,127]之间，不会返回新对象
        System.out.println(x3==x4); //返回不同的对象，所以是false
        System.out.println(x1.equals(x2)); //比较值 true
        System.out.println(x3.equals(x3)); //比较值 true

        Map<String, Integer> c = new HashMap<>();
        Map<String, Integer> d = new HashMap<>();
        c.put("c", 1);
        d.put("c", 1);
        System.out.println (c.get("c")== d.get("c"));

        
    }
}
